﻿#include "Config.h"

//放入AVPacket，内部实则调用packet_queue_put_private函数
int packet_queue_put(PacketQueue *q, AVPacket *pkt);
//放入AVPacket
int packet_queue_put_private(PacketQueue *q, AVPacket *pkt);
//放入空的AVPacket
int packet_queue_put_nullpacket(PacketQueue *q, int stream_index);
//初始化包队列
int packet_queue_init(PacketQueue *q);
//flush释放队列所有节点
void packet_queue_flush(PacketQueue *q);
//内部会调用packet_queue_flush清空所有节点，同时会销毁互斥锁和条件变量
void packet_queue_destroy(PacketQueue *q);
//请求退出，同时释放一个条件信号
void packet_queue_abort(PacketQueue *q);
//请求登录，同时调用packet_queue_put_private函数插入一个flush_pkt
void packet_queue_start(PacketQueue *q);
//获取队列里的AVPacket
int packet_queue_get(PacketQueue *q, AVPacket *pkt, int block, int *serial);

